Il SIMT (Single-Instruction, Multiple-Thread) modello è il battito cardiaco dell'architettura GPU. Mentre programmi thread individuali, l'hardware li coordina in una gerarchia a due livelli di griglie e blocchi. Per massimizzare l'efficienza, l'hardware suddivide ulteriormente questi blocchi in unità da 32 thread chiamate warp.
1. SIMT vs. SIMD
A differenza dell'SIMD per CPU (come SSE/AVX), dove si impacchetta manualmente i dati nei registri, il SIMT permette ai thread di apparire indipendenti. L'hardware raggruppa automaticamente i thread in warp, recuperando un'unica istruzione per tutti i 32 thread in modo da eseguirla simultaneamente.
2. Regola di linearizzazione
I programmatori usano threadIdx.x, y, z per la logica, ma l'hardware lo trasforma in una sequenza unidimensionale per la pianificazione:
Poiché la dimensione x è l'indice più veloce da variare, i thread con valori consecutivi di threadIdx.x valori si trovano solitamente nello stesso warp, il che è fondamentale per coalescimento della memoria.